#include <stdio.h>
#include <iostream>
#include <string>
#include "BigNum.h"
using namespace std;

int main()
{
	BigNum bn[][2] = { { BigNum("10101010101010101010101010"), BigNum("1010101010101010101010101010101010") },		// Pos, Pos with first < second
					   { BigNum("1010101010101010101010101010101010"), BigNum("10101010101010101010101010") },		// Pos, Pos with first >= second
					   { BigNum("-10101010101010101010101010"), BigNum("1010101010101010101010101010101010") },		// Neg, Pos with first < second
					   { BigNum("-1010101010101010101010101010101010"), BigNum("10101010101010101010101010") },		// Neg, Pos with first >= second
					   { BigNum("10101010101010101010101010"), BigNum("-1010101010101010101010101010101010") },		// Pos, Neg with first < second
					   { BigNum("1010101010101010101010101010101010"), BigNum("-10101010101010101010101010") },		// Pos, Neg with first >= second
					   { BigNum("-10101010101010101010101010"), BigNum("-1010101010101010101010101010101010") },	// Neg, Neg with first < second
					   { BigNum("-1010101010101010101010101010101010"), BigNum("-10101010101010101010101010") }		// Neg, Neg with first >= second	
					 };

	BigNum result;

	for (int i = 0; i < 8; i++)
	{
		cout << "First Number:\t\t" << BigNum::GetNumber(bn[i][0]) << endl;
		cout << "Second Number:\t\t" << BigNum::GetNumber(bn[i][1]) << endl;
		BigNum::Add(bn[i][0], bn[i][1], result);
		cout << "Add Result:\t\t" << BigNum::GetNumber(result) << endl;
		BigNum::Subtract(bn[i][0], bn[i][1], result);
		cout << "Subtract Result:\t" << BigNum::GetNumber(result) << endl << endl;
	}

	string input;
	cout << "Press Enter to Continue...";
	getline(cin, input);
}